package com.app.diary.ui;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import androidx.appcompat.widget.Toolbar;

import com.app.diary.Mapp;
import com.app.diary.R;
import com.app.diary.data.UserDataSource;
import com.app.diary.utils.ToastUtils;

/**
 * 登录页面
 */
public class LoginActivity extends BaseActivity {

    private Toolbar toolbar; // 标题栏控件
    private EditText usernameEditText; // 用户名输入框控件
    private EditText passwordEditText; // 密码输入框控件
    private Button loginButton; // 登录按钮控件
    private Button registerButton; // 注册按钮控件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initView();
        setView();
    }

    /**
     * 初始化控件
     */
    private void initView() {
        toolbar = findViewById(R.id.toolbar);
        usernameEditText = findViewById(R.id.username_editText);
        passwordEditText = findViewById(R.id.password_editText);
        loginButton = findViewById(R.id.login_button);
        registerButton = findViewById(R.id.register_button);
    }

    /**
     * 设置控件
     */
    private void setView() {
        setSupportActionBar(toolbar);

        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                attemptLogin();
            }
        });

        registerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(intent);
            }
        });
    }

    /**
     * 尝试登录
     */
    private void attemptLogin() {
        String username = usernameEditText.getText().toString().trim();
        String password = passwordEditText.getText().toString().trim();

        if (username.isEmpty()) {
            ToastUtils.showShort("请输入用户名");
            return;
        }
        if (password.isEmpty()) {
            ToastUtils.showShort("请输入密码");
            return;
        }

        UserDataSource userDataSource = Mapp.getInstance().getUserDataSource();
        long userId = userDataSource.getUserIdByUsernameAndPassword(username, password);

        if (userId != -1) {
            Mapp.getInstance().setUserId(userId); // 设置用户ID
            Mapp.getInstance().setUserLoggedIn(true); // 设置登录状态
            ToastUtils.showShort("登录成功");
            Intent intent = MainActivity.buildIntent(this);
            startActivity(intent);
            finish(); // 如果你想要关闭当前活动，登录后关闭登录页面
        } else {
            ToastUtils.showShort("用户名或密码错误");
        }
    }

    /**
     * 创建用于启动 LoginActivity 的 Intent。
     *
     * @param context 上下文
     * @return 启动 LoginActivity 的 Intent
     */
    public static Intent buildIntent(android.content.Context context) {
        return new Intent(context, LoginActivity.class);
    }
}